#ifndef I_PACKAGE_SENDER_H
#define I_PACKAGE_SENDER_H

#include "i_package.h"
#include <boost/asio.hpp>
#include <boost/shared_ptr.hpp>
using boost::asio::ip::udp;

class IPackageSender
{
public:
	typedef boost::shared_ptr<IPackageSender> Ptr;
	virtual void send(const udp::endpoint& addr, boost::asio::const_buffers_1& package) = 0;
	virtual void send(const udp::endpoint& addr, IPackage::Ptr package, unsigned int seq) = 0;
	virtual boost::asio::io_service& ioService() = 0;
	virtual ~IPackageSender(){}
};

#endif
